home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b6.d64
/
accept.l
next >
Wrap
Text File
|
2007-02-28
|
1KB
|
62 lines
9000 PROC ACCEPT(PROMPT$,VALID$,REF REPLY$,MAX) CLOSED
9010 Z:=ZONE
9020 ZONE 0
9030 PRINT PROMPT$
9040 PRINT "[ñ",
9050 FOR X:=2 TO MAX DO PRINT " ",
9060 PRINT "]",
9070 FOR X:=1 TO MAX+1 DO PRINT "¥",
9080 FETCH(REPLY$,VALID$,MAX)
9090 PRINT
9100 ZONE Z
9110 ENDPROC ACCEPT
9120 //
9130 PROC FETCH(REF A$,V$,MAX) CLOSED
9140 DIM VALID$ OF 80, B$ OF 1
9150 Z:=ZONE
9160 ZONE 0
9170 A$:=""
9180 CASE V$ OF
9190 WHEN "A"
9200 VALID$:="ABCDEFGHIJKLMNOPQRSTUVWXYZ ┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌,."
9210 WHEN "D"
9220 VALID$:="0123456789"
9230 WHEN "B"
9240 VALID$:="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌,."
9250 OTHERWISE
9260 VALID$:=V$
9270 ENDCASE
9280 DONE:=FALSE; NUM:=0
9290 REPEAT
9300 GET'VALID(B$,VALID$+CHR$(13)+CHR$(20))
9310 CASE B$ OF
9320 WHEN CHR$(13)
9330 DONE:=TRUE
9340 WHEN CHR$(20)
9350 IF NUM THEN
9360 NUM:-1
9370 IF NUM=MAX-1 THEN
9380 PRINT "¥ñ¥",
9390 ELSE
9400 PRINT " ¥¥ñ¥",
9410 ENDIF
9420 A$:=A$(1:NUM)
9430 ENDIF
9440 OTHERWISE
9450 IF NUM<MAX THEN
9460 A$:=A$+B$
9470 NUM:+1
9480 PRINT B$;"¥ñ¥",
9490 IF NUM=MAX THEN PRINT "]¥",
9500 ENDIF
9510 ENDCASE
9520 UNTIL DONE
9530 ZONE Z
9540 ENDPROC FETCH
9550 //
9560 PROC GET'VALID(REF C$,VALID$) CLOSED
9570 REPEAT
9580 C$:=KEY$
9590 UNTIL C$ IN VALID$
9600 ENDPROC GET'VALID